package com.cn.test.util;

import android.util.Log;

/**
 * log工具类   控制要显示log的类别
 * Created by glp on 2017/6/9.
 * 开发期间为了方便调试，在代码的很多地方都打印了大量的日志。可是当项目临近上线时，
 * 之前调试的那些日志在上线后仍然会照常打印，这样不仅会降低程序的运行效率，还可能导致数据泄露！
 * <p>
 * 通过修改level的初始化值，达到过滤log类别或者直接关掉所有的日志打印。
 */

public class MyLogUtil {

    public static int VERBOSE = 1;  // 显示全部log日志
    public static int DEBUG = 2;    // 显示debug info warn error
    public static int INFO = 3;     // 显示info warn error
    public static int WARN = 4;     // 显示warn error
    public static int ERROR = 5;    // 只显示 error 级别的log
    public static int NOTHING = 1;  // 所有的日志都不打印 [ps:上线时使用]

    public static int level = VERBOSE;  // 修改这里的level值为上方某一个即可

    public static void v(String tag, String msg) {
        if (level <= VERBOSE) {
            Log.v(tag, msg);
        }
    }

    public static void d(String tag, String msg) {
        if (level <= DEBUG) {
            Log.d(tag, msg);
        }
    }

    public static void i(String tag, String msg) {
        if (level <= INFO) {
            Log.i(tag, msg);
        }
    }

    public static void w(String tag, String msg) {
        if (level <= WARN) {
            Log.w(tag, msg);
        }
    }

    public static void e(String tag, String msg) {
        if (level <= ERROR) {
            Log.e(tag, msg);
        }
    }


    /**
     * 我们采取分段打印日志的方法：当长度超过4000时，我们就来分段截取打印
     * @param
     */
    public static void longTtxt(String bodyMsg) {
        //剩余的字符串长度如果大于4000
        if (bodyMsg.length() > 4000) {
            for (int i = 0; i < bodyMsg.length(); i += 4000) {
                //当前截取的长度<总长度则继续截取最大的长度来打印
                if (i + 4000 < bodyMsg.length()) {
                    Log.i("longtext", bodyMsg.substring(i, i + 4000));
                } else {
                    //当前截取的长度已经超过了总长度，则打印出剩下的全部信息
                    Log.i("longtext", bodyMsg.substring(i, bodyMsg.length()));
                }
            }
        } else {
            //直接打印
            Log.i("msg", bodyMsg);
        }
    }

    /**
     * 我们采取分段打印日志的方法：当长度超过4000时，我们就来分段截取打印
     * @param
     */
    public static void longTtxt1(String bodyMsg) {
        //剩余的字符串长度如果大于4000
        if (bodyMsg.length() > 4000) {
            for (int i = 0; i < bodyMsg.length(); i += 4000) {
                //当前截取的长度<总长度则继续截取最大的长度来打印
                if (i + 4000 < bodyMsg.length()) {
                    Log.i("longtext_gameinfo", bodyMsg.substring(i, i + 4000));
                } else {
                    //当前截取的长度已经超过了总长度，则打印出剩下的全部信息
                    Log.i("longtext_gameinfo", bodyMsg.substring(i, bodyMsg.length()));
                }
            }
        } else {
            //直接打印
            Log.i("msg", bodyMsg);
        }
    }

}